Multi-pane interface

ABSTRACT

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for presenting content. In one aspect, a method includes determining that user interaction with a search result has occurred, where the search result was presented in a results pane of a display. A browsing pane is generated in which a landing page for the search result is presented. The browsing pane is presented over a portion of the results pane. The portion of the results pane is bounded by an edge of the display and a pane edge of the browsing pane, where the pane edge is located at an initial display location. A user swipe is determined to have occurred, and in response to the user swipe the pane edge is relocated to a target display location.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit under 35 U.S.C. §119(e) of U.S.Patent Application No. 61/559,261, entitled “MULTI-PANE INTERFACE,”filed Nov. 14, 2011, which is incorporated herein by reference in itsentirety.

BACKGROUND

This specification relates to data presentation.

The Internet provides access to a wide variety of resources such asimages, video or audio files, web pages for particular subjects, bookarticles, or news articles. A search system can identify resources thatare responsive to a search query and provide search results thatreference the identified resources. Users can view the search results ona display device and request presentation of the resources throughinteraction with the search results. For example, in response to userinteraction with a search result, the resource that is referenced by thesearch result can be presented in the display in which the search resultwas presented.

SUMMARY

In general, one innovative aspect of the subject matter described inthis specification can be embodied in methods that include the actionsof determining that user interaction with a search result has occurred,the search result with which the user interacted having been presentedin a results pane of a display; generating a browsing pane in which alanding page for the search result is presented, the browsing pane beingpresented over a portion of the results pane, the portion of the resultspane being bounded by an edge of the display and a pane edge of thebrowsing pane, the pane edge being located at an initial displaylocation; determining that a user swipe has occurred, the determinationthat the user swipe has occurred being based, at least in part, ondetection of a pointer at multiple locations along a path that extendsfrom a first display location to a second display location, the firstdisplay location being within a threshold distance of the initialdisplay location; relocating the pane edge to a target display location,the relocation causing the portion of the results pane over which thebrowsing pane is presented to be adjusted. Other embodiments of thisaspect include corresponding systems, apparatus, and computer programs,configured to perform the actions of the methods, encoded on computerstorage devices.

These and other embodiments can each optionally include one or more ofthe following features. Methods can further include the action ofdetecting, while the browsing pane is presented over the portion of theresults pane, an additional user interaction with an additional searchresult that is presented in the results pane. In response to detectingthe additional user interaction: presentation of the browsing pane canbe maintained over the portion of the results pane; and a landing pagefor the additional search result can be presented in the browsing pane.

Methods can further include the action of determining that userinteraction with a resource link occurred, the resource link being alink that is included in the landing page for the additional searchresult. In response to determining that the user interaction with theresource link occurred a resource that is referenced by the resourcelink can be requested; and the resource can be presented in the browsingpane. The resource can be presented while maintaining presentation of atleast one search result in the results pane.

Methods can further include the actions of determining a direction ofthe user swipe, the direction of the user swipe being based onsequential detection of the pointer at two or more of the multiplepoints; and selecting the target display location based, at least inpart, on the initial display location and the direction of the userswipe. Methods can further include the actions of determining a speed ofthe user swipe, the speed of the user swipe being based on an amount oftime between detection of the pointer at two or more of the multiplepoints, wherein the target display location is further selected based,at least in part, on the speed of the user swipe. A distance between thetarget display location and the initial display location can beproportional to the speed of the user swipe.

Selecting the target display location can include selecting the targetdisplay location from a plurality of candidate display locations. Theplurality of candidate display locations can include at least a resultsview display location that is located at a first edge of the display andcauses less than a threshold portion of the results pane to be occludedby the browsing pane; a browsing view display location that is locatedat a second edge of the display and causes more than a threshold portionof the results pane to be occluded by the browsing pane, the second edgebeing located on an opposite end of the display than the first edge; anda partial view display location that is located between the first edgeand the second edge.

Methods can further include the actions of determining that the paneedge is located at the results view display location; determining that abrowsing view condition has been satisfied, the determination that thebrowsing view condition is satisfied being based, at least in part, onthe direction of the user swipe being towards the second edge of thedisplay and that the speed of the user swipe being greater than a speedthreshold; and in response to determining that the browsing viewcondition has been satisfied, relocating the pane edge to the browsingview display location.

Methods can further include the actions of determining that a subsequentuser swipe has occurred while the pane edge is located at the browsingview display location; determining that the subsequent user swipesatisfies a results view condition, the determination that the resultsview condition is satisfied being based, at least in part, on thedirection of a subsequent user swipe being toward the results viewdisplay location and the speed of the subsequent user swipe beinggreater than the speed threshold; and in response to determining thatthe results view condition has been satisfied, relocating the pane edgeto the results view display location.

Particular embodiments of the subject matter described in thisspecification can be implemented so as to realize one or more of thefollowing advantages. Users are enabled to view landing pages for searchresults without navigating away from a search results page. A landingpage for a search result can be presented in a separate pane than thesearch result, thereby enabling a user to explore the landing page, aswell as pages that are linked to by the landing page, while maintainingpresentation of the search results. Users can select a portion of adisplay that is occupied by each pane based on the direction and speedwith which the user swipes a pointer across the display. Each pane canmaintain the content that is presented in the pane irrespective of theportion of the pane that is presented on the display.

The details of one or more embodiments of the subject matter describedin this specification are set forth in the accompanying drawings and thedescription below. Other features, aspects, and advantages of thesubject matter will become apparent from the description, the drawings,and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an example search environment.

FIGS. 2A-2D are screen shots of an example user device display.

FIG. 3 is a flow chart of an example process for presenting content in amulti-pane interface.

FIG. 4 is a block diagram of an example computer system.

Like reference numbers and designations in the various drawings indicatelike elements.

DETAILED DESCRIPTION

The availability of portable computing devices is increasing, and manyof these devices have touch screens that enable a user to use a fingeror another pointer to interact with content. For example, users using atablet computing device can enter interact with a search result bytouching a location of the touch screen at which the search result ispresented. The user interaction with the search result initiates arequest for a resource that is referenced by the search result, and theresource can be presented in the browser (or other application) that isoperating on the computing device.

To increase usability of tablet devices in search and/or non-searchenvironments, a multi-pane user interface can be implemented thatenables presentation of search results in one pane (i.e., a “resultspane”) and presentation of other content in a second pane (i.e., “abrowsing pane”). In some implementations, the browsing pane is presentedin response to user interaction with a search result, and a portion ofthe browsing pane is presented at a location that occludes a portion ofthe results pane.

The location at which the browsing pane is initially presented can beselected so that the search results that were being presented in theresults pane and at least a portion of the content for the resource thatis presented in the browsing pane are visible. This enables sequentialselection of search results and examination of the resources that arereferenced by the search results in separate portions of the user devicedisplay. In some implementations, user interaction with either thesearch results or the content presented in the browsing pane will notaffect the size and/or orientation of the results pane or the browsingpane. As discussed in more detail below, the portion of the browsingpane that is presented, and in turn, the portion of the results panethat is occluded can be adjusted through user interactions with a paneedge of the browsing pane.

FIG. 1 is a block diagram of an example environment 100 in which asearch system 110 provides search services. The example environment 100includes a network 102, e.g., a local area network (LAN), wide areanetwork (WAN), the Internet, or a combination of them, connects websites 104, user devices 106, and the search system 110. The environment100 may include many thousands of web sites 104 and user devices 106.

A web site 104 is one or more resources 105 associated with a domainname and hosted by one or more servers. An example web site is acollection of web pages formatted in hypertext markup language (HTML)that can contain text, images, multimedia content, and programmingelements, e.g., scripts. Each web site 104 is maintained by a publisher,e.g., an entity that manages and/or owns the web site.

A resource 105 is any data that can be provided by a web site 104 overthe network 102 and that is associated with a resource address.Resources 105 include HTML pages, word processing documents, andportable document format (PDF) documents, images, video, and feedsources, to name just a few. The resources 105 can include content,e.g., words, phrases, images and sounds and may include embeddedinformation (e.g., meta information and hyperlinks) and/or embeddedinstructions (e.g., scripts).

A user device 106 is an electronic device that is under control of auser and is capable of requesting and receiving resources 105 over thenetwork 102. Example user devices 106 include personal computers, mobilecommunication devices, and other devices, such as tablet computingdevices, that can send and receive data over the network 102. A userdevice 106 typically includes a user application, e.g., a web browser,to facilitate the sending and receiving of data over the network 102.

To facilitate searching of resources 105, the search system 110identifies the resources 105 by crawling and indexing the resources 105provided on web sites 104. Data about the resources 105 can be indexedbased on the resource to which the data corresponds. The indexed and,optionally, cached copies of the resources 105 are stored in a searchindex 112.

The user devices 106 submit search queries 109 to the search system 110.In response, the search system 110 accesses the search index 112 toidentify resources 105 that are relevant to (e.g., have at least aminimum specified relevance score for) the search query 109. The searchsystem 110 identifies the resources 105, generates search results 111that identify the resources 105, and returns the search results 111 tothe user devices 106. A search result 111 is data generated by thesearch system 110 that identifies a resource 105 that is responsive to aparticular search query, and includes a link to the resource 105. Anexample search result 111 can include a web page title, a snippet oftext or a portion of an image extracted from the web page, and the URLof the web page.

The search results are ranked based, at least in part, on scores relatedto the resources 105 identified by the search results 111, such asinformation retrieval (“IR”) scores, and optionally a quality score ofeach resource relative to other resources. In some implementations, theIR scores are computed from dot products of feature vectorscorresponding to a search query 109 and a resource 105, and the rankingof the search results is based on initial relevance scores that are acombination of the IR scores and page quality scores. The search results111 are ordered according to these initial relevance scores and providedto the user device 106 according to the order.

The search results 111 (e.g., SR1, SR2, SR3) are presented in a searchresults page 114 that is displayed at the user device. User interactiona search result (e.g., SR1) causes the user device 106 to request alanding page (e.g., LP1) is referenced by the search result. In someimplementations, the user device 106 submits a hypertext transferprotocol request for a resource that is located at a uniform resourcelocator specified by the search result with which the user interactionoccurred. For example, user interaction with the search result SR1 cancause the user device 106 request landing page 1 (116) that isreferenced by the search result SR1. In response to the request, datathat cause presentation of landing page 1 (116) are received by the userdevice 106 and used to present landing page 1 (116) at the user device106. In this example, the presentation of landing page 1 (116) may causea search results page 114 to no longer be presented. For example, abrowser that was presenting search results page 114 may present landingpage 1 (116) in place of the results page 114.

In order to view additional landing pages for additional search results,a user can again request presentation of search results page 114, forexample, by interacting with a “back” element is provided in theirbrowser. Interaction with the “back” element will again causepresentation of the search results page 114, and the user can theninteract with another search result, such as SR2, to requestpresentation of landing page 2 (118) that is referenced by the othersearch result. Similar interaction with the “back” element andadditional search results can be iteratively performed to continue toview landing pages for additional search results. However, theseiterative requests for landing pages and re-presentation of searchresults page 114 can be time-consuming, and make it difficult for a userto examine both the search results page 114 and a particular landingpage at the same time.

User device 106 configured to present search results in one displaypane, while presenting landing pages for the search results in anotherdisplay pane. An interface that uses multiple panes to present searchresults and corresponding landing pages is referred to as a multi-panesearch interface. The display pane in which the search results arepresented is referred to as a results pane while the display pane inwhich the landing pages (and other content) are presented is referred toas a browsing pane. As described in more detail below, the browsing panemay be selectively presented in response to user interaction with asearch result that is presented in the results pane, and a user mayselect a portion of the display that is occupied by the browsing pane.The user may view and/or interact with elements of the landing page thatis displayed in the browsing pane, while presentation of the searchresults in the results pane is maintained (i.e., the search results pageis not replaced by the landing page). Therefore, a user can requestmultiple different landing pages are referenced by the search resultswithout submitting additional requests for the search result page (e.g.,by interacting with a “back” element). An example multi-pane searchinterface is described with reference to FIGS. 2A-2D.

FIG. 2A is a screenshot of an example search interface 200 in whichsearch results 202 a-202 d are presented. The search interface 200 canbe presented at a user device, such as a tablet computing device. Thesearch interface 200 includes a query entry field 204 in which a usercan enter a search query 206. The user interface 200 also includes asearch initiation element 208 with which the search query 206 besubmitted to the search system. For example, in response to userinteraction with the search initiation element 208 the user device cansubmit a search query to a search system as described above withreference to FIG. 1.

The search results 202 a-202 d that are presented in the searchinterface 200 are those search results that were received from thesearch system in response to submission of the search query 206. In someimplementations, the search interface 200 can also include suggestedsearch queries 210 that were received from search system. Suggestedsearch queries 210 can be, for example, other search queries that thesearch system has identified (e.g., based on an analysis of search querylogs) as potentially related to the search query 206. User interactionwith one of the suggested search queries 210 can cause the user deviceto submit the suggested search query to the search system.

The search interface 200 that is illustrated by FIG. 2A includes only asingle pane (e.g., a results pane 211). In some implementations, thesearch interface 200 is configured to present a results pane 211 inwhich the search results are presented, but not present a browsing paneuntil user interaction with a search result occurs. For example, uponreceipt of search results 202 a-202 d from the search system, the userdevice can generate and/or populate a results pane 211 with the searchresults 202 a-202 d without generating and/or without populating abrowsing pane. The dimensions of the results pane 211 can be selected tobe substantially the same as (e.g., within a threshold distance of) thedimensions of the user device display. Alternatively, and/oradditionally, the dimensions of the results pane 211 can be based, atleast in part, on size preferences that have been specified in userpreferences. For example, the user preferences can specify that thedimensions of the results pane are to be scaled by a factor of X (e.g.,where X is a value less than 1.0) relative to the dimensions of the userdevice display.

In response to detecting user interaction with one of the search results(e.g., search result 202 a), the user device can generate and/or causepresentation of a browsing pane 212 in the search interface 200, asillustrated by FIG. 2B. User interaction with one of the search resultscan be detected, for example, based on detection of a pointer contactinga capacitive touch screen (or otherwise detecting interaction withanother type of touch screen, such as an infrared touch screen or apressure sensitive touch screen) at the presentation location of thesearch result. User interaction can also be detected based on a userpositioning a graphic pointer (e.g., a mouse pointer) over the searchresult and “clicking” or otherwise selecting the search result.

The browsing pane 212 may be generated to have dimensions that aresubstantially the same as (or based on) the dimensions of the userdevice display (or a portion of that user device display that isavailable for presentation of resources). However, the portion of thebrowsing pane 212 that is presented may be less than the entire browsingpane. For example, as illustrated by FIG. 2B, a sub-portion (i.e., lessthan 100%) of the browsing pane 212 is presented over a portion of theresults pane 211, and the portion of the results pane 211 is occluded bythe sub-portion of the browsing pane 212. The sub-portion of thebrowsing pane 212 that is occluding the portion of the results pane 211extends from a pane edge 214 of the browsing pane to an edge 216 of theuser device display. That is, the portion of the user device display inwhich the browsing pane 212 is presented is bounded by the pane edge 214and the edge 216 of the user device.

As discussed above, the browsing pane 212 can be used to present thelanding page that is referenced by the search results (e.g., 202 a) withwhich the user interaction occurred. For example, in response todetecting user interaction with search result 202 a, the user device cansubmit a request for a landing page that is referenced (e.g., by way ofa URL that is included in the search result) by the search result 202 a.In turn, the user device receives data representing the landing page inresponse to the request, and can render the landing page using thereceived data. In turn, the user device can present at least a portionof the rendered landing page in the sub-portion of the browsing pane 212that is presented in the user device display. For purposes of thisdocument, the term landing page is used to refer to a resource that isrequested in response to user interaction with a search result.

In some implementations, the portion of the landing page that ispresented in the sub-portion of the browsing pane 212 can be thatportion of the landing page that would be presented in the sub-portionof the browsing pane if all of the browsing pane 212 were presented inthe user device display at 100% scale (or another scale). In someimplementations, the landing page can be scaled so that at least athreshold portion (e.g., 40%) of the width of the landing page ispresented in the browsing pane)

As discussed above, a pane edge 214 bounds the browsing pane 212, suchthat the portion of the results pane 211 is occluded by the browsingpane depends, at least in part, on a display location of the pane edge214. In some implementations, the pane edge 214 can be positioned at aninitial display location when the browsing pane is first presentedfollowing user interaction with a search result. The initial displaylocation can be, for example, a display location at which less than half(or another specified portion such as more than half) of the resultspane 211 is occluded by the browsing pane 212. For example, in FIG. 2B,the browsing pane 212 occludes less than half of the results pane 211,such that the browsing pane 212 does not occlude the titles of thesearch results 202 a-202 d. Therefore, the portions of the searchresults titles that were presented are still legible.

The search interface 200 can be implemented so that each of the resultspane 211 and the browsing pane 212 maintain their relative positions andorientation independent of user interaction with the landing page thatis presented in browsing pane 212 or user interaction with additionalsearch results that are presented in the results pane 211. For example,user interaction with another search result 202 b will cause the userdevice to request the landing page for search result 202 b, but will notcause the browsing pane 212 to be occluded by the results pane 211.Rather, the visibility of the browsing pane 212 will be maintained andthe user device will present the landing page for search results 202 bin the browsing pane 212. By maintaining presentation of the browsingpane 212 following user interactions with additional search results, auser can sequentially select multiple search results to causepresentation of the corresponding landing pages in the browsing pane 212without having to readjust the manner in which the panes are presentedand also without being required to again submit a request for the searchresults page.

The browsing pane 212 can be implemented in a manner that enables a userto manipulate the location of the pane edge 214. In someimplementations, the pane edge 214 is relocated based, at least in part,on a determination that a user swipe occurred. A user swipe is a userinteraction that is determined to have occurred based on detection of apointer at multiple locations along a path that extends from one displaylocation to another display location. For purposes of illustration, auser swipe may be detected when a user places a finger (or anotherpointer) on a first location of a touch screen of a tablet computingdevice and slides the finger across the touch screen to a secondlocation. In this example, the user device will detect the pointer atthe first location and one or more additional points over the pathbetween the first location and the second location. Thus, the userdevice can determine that a user swipe occurred.

The location of the pane edge 214 can be relocated based, at least inpart, on the direction of the user swipe. For example, if the user swipetravels along a path that begins at a location 213 near the pane edge214 to a location 215 that is in the direction of display edge 218(i.e., relative to the location of the pane edge 214) then the pane edge214 can be relocated to a position that is closer to the display edge218 (i.e., relative to a current location of the pane edge 214). In thisexample, as illustrated by FIG. 2C, the pane edge 214 can be relocatedto a display position that is substantially the same (e.g., within athreshold number of pixels of) the display edge 218. Similarly, asillustrated by FIG. 2D, the pane edge 214 can be relocated to a displayposition that is substantially the same (e.g., within a threshold numberof pixels of) the display edge 216 when the user swipe is along a pathfrom a location 217 near the pane edge 214 to a location 219 that iscloser to the display edge 216 (i.e., relative to the current locationof the pane edge 214). The display location to which the pane edge 214is relocated is referred to throughout this document as a target displaylocation.

In some implementations, there are multiple possible target displaylocations to which the pane edge 214 can be relocated in response to auser swipe in a particular direction. For example, in addition to theinitial display location, the search interface 200 can be implemented ina manner that enables the pane edge 214 to be relocated to a search viewdisplay location, a browsing view display location, and/or a partialview display location.

The search view display location is a target display location at whichless than a threshold portion (e.g., less than 10%) of the results paneis occluded by the browsing pane. In some implementations, the searchview display location is at (or within a threshold number of pixels of)an edge of the user device display. With reference to FIG. 2D, the paneedge 214 is located at the search view display location 220. In thisexample, the pane edge 214 is still visible and has increased in widthto facilitate user interaction with the pane edge 214. The pane edge 214has also been modified to include a grip element 222 that provides anindication of the ability to manipulate the location of the pane edge214 through user interaction with (e.g., swiping near) the pane edge214. As illustrated by FIG. 2D, when the pane edge 214 is located at thesearch view display location 220, the landing page that is presented inthe browsing pane 212 may not be visible, while all of the text that ispresented in the results pane 211 may be visible.

The browsing view display location is a target display location at whichmore than a threshold portion (e.g., 90%) of the results pane isoccluded by the browsing pane. In some implementations, the browsingview display location is at (or within a threshold number of pixels of)an edge of the user device display. With reference to FIG. 2C, the paneedge 214 is located at the display edge 216, which in this example, isalso the browsing view display location. As illustrated by FIG. 2C, thepane edge 214 is not visible when the pane edge 214 is at the browsingview display location, although in some implementations, the pane edge214 could be implemented to remain visible irrespective of the locationof the pane edge 214.

In some implementations, the browsing pane 214 can be implemented tohave a “tab portion” 224 that is at least partially transparent so thata portion of the results pane 211 remains visible when the pane edge 214is located at the browsing view display location. Additionally, thesearch interface 200 can be implemented such that user interaction with(e.g., a single or double tap or click of) the tab portion 224 willcause the pane edge 214 to be relocated to the search view displaylocation 220, or otherwise cause a larger portion of the results pane211 to be visible.

The partial view display location is a target display location that islocated between the results view display location and the browsing viewdisplay location. At least a portion of the content that is presented ineach of the results pane and the browsing pane is visible when the paneedge is located at a partial view display location. The location of thepane edge 214 in FIG. 2B is an example of a partial view displaylocation. One or more additional partial view display locations can bespecified so that the visible content in each of the results pane andthe browsing pane can be varied.

The target display location to which the pane edge is relocated can beselected, at least in part, on a speed of the user swipe that has beendetected. In some implementations, the pane edge is relocated to aclosest target display location (e.g., that is in the direction of theuser swipe) when the speed of the user swipe is less than a lower speedthreshold. For example, with reference to FIG. 2D, assume that a userswipe has been detected from a location near the pane edge 214 to alocation 226, and that the speed of the user swipe was determined to beless than the lower speed threshold. In this example, the pane edge 214may be relocated to the next target display location that is to the leftof the search view display location 220, which may result in the paneedge 214 being positioned as illustrated by FIG. 2B.

When the speed of the user swipe is determined to exceed an upper speedthreshold, the pane edge can be relocated to either the browsing viewdisplay location or the search view display location depending on thedirection of the user swipe. Continuing with the example above withreference to FIG. 2D, if the user swipe from the location near the paneedge 214 to the location 226 was determined to exceed the upper speedthreshold, the user swipe can be considered to have satisfied a browsingview condition, for example, because the user swipe was in a directionof the browsing view display location, and the speed of the user swipeexceeded the upper speed threshold. When a user swipe satisfies thebrowsing view condition, the pane edge 214 is relocated to the browsingview display location, e.g., the display edge 216 in FIG. 2C.

When a user swipe is detected from a location near the browsing viewdisplay location (e.g., the display edge 216 in FIG. 2C) to a location228 (i.e., in a direction of the results view display location), and thespeed of the user swipe is determined to exceed the upper speedthreshold, the user swipe is considered to have satisfied a results viewcondition. In response to determining that the user swipe satisfied theresults view condition, the user device relocates the pane edge to thesearch view display location 220 as illustrated by FIG. 2D. If the userswipe that is in the direction of the results view display location doesnot exceed the upper speed threshold, the pane edge 214 can be relocatedas illustrated by FIG. 2B.

When three target display locations are defined, as illustrated by FIGS.2B-2D, the upper speed threshold and the lower speed threshold can havea same value. When additional target display locations have beenspecified, the values of the upper speed threshold and the lower speedthreshold can differ, and additional speed thresholds can be specified.For example, each target display location can have a corresponding speedthreshold that can vary based on the current location of the pane edge,such that the distance by which the pane edge is relocated can beproportional to the speed of the user swipe.

The speed of a user swipe can be determined based on an amount of timethat elapses between detection of the pointer at two or more pointsalong the swipe path. For example, assume that during a first user swipethe pointer is detected at a first location at time=0 and then detectedat a second location at time=2, and that during a second user swipe thepointer is detected at the first location at time=4 and then detected atthe second location at time=8. In this example, the duration of eachswipe (and/or the distance between the points at which the pointer wasdetected) can be used to determine the speed of the swipe, and thesecond swipe will be determined to be ½ the speed of the first swipe.

FIG. 3 is a flow chart of an example process 300 for presenting contentin a multi-pane interface. The process 300 can be implemented, forexample, at a user device, such as a tablet computing device thatincludes a touch screen that receives input from a pointer such as afinger or a mechanical pointing device. The process can also beimplemented by a desktop or other computing device that receives inputfrom a pointer such as a mouse. The process 300 can also be implementedas instructions stored on computer storage medium such that execution ofthe instructions by data processing apparatus cause the data processingapparatus to perform the operations of the process 300.

User interaction with a search result is determined to have occurred(302). The search result with which the user interaction occurred can bepresented in a results pane that is presented at a user device. Theresults pane can be, for example, a display area for a browserapplication in which search results are presented.

The user interaction can be detected by the user device that ispresenting the search results. For example, as described above withreference to FIG. 2A, the user device can detect a pointer contacting acapacitive touch screen (or other interaction with another type of touchscreen, such as an infrared touch screen or a pressure sensitive touchscreen) at the presentation location of the search result. Additionally,the user device can detect a graphic pointer (e.g., a mouse pointer)being positioned over the search result and “clicking” or otherwiseselecting the search result. The search result with which the userinteraction occurred is referred to as a selected search result.

A browsing pane is generated in response to user interaction with thesearch result (304). In some implementations, the landing page for theselected search result is presented in the browsing pane. For example,in response to user interaction with the search result, the user devicecan request the landing page for the search result from a networklocation that is specified by the search result. Using the data receivedin response to the request, the user device can render the landing pageand present at least a portion of the landing page in the browsing pane.

In some implementations, only a sub-portion of the browsing pane isinitially presented. For example, as described above with reference toFIG. 2B, the portion of the browsing pane can be presented “over” aportion of the results pane (i.e., presented at a location that occludesa portion of the results pane) so that content from each of the resultspane and the browsing pane are presented in the user device display. Asdescribed above, with reference to FIG. 2B, the portion of the browsingpane that is presented is bounded by a pane edge for the browsing paneand an edge of the user device display. Similarly, the portion of theresults pane that is presented is bounded by the pane edge and anotherdifferent edge of the user device display. Note that other portions(e.g., 0-100%) of the browsing pane can be initially presented.

A determination is optionally made whether a user interaction with aresource link on the landing page has occurred (306). User interactionwith a resource link (e.g., a hypertext link to the resource) can bedetermined to have occurred in a similar manner that user interactionwith a search result has occurred. In response to determining that userinteraction with the resource link occurred, a resource that isreferenced by the resource link can be presented in the browsing pane(308). For example, the user device can request the resource that isreferenced by the resource, render the resource using the data that isreceived in response to the request, and presented at least a portion ofthe resource in the portion of the browsing pane that is visible in theuser device display. The resource can be presented in the browsing panewhile maintaining presentation of both the browsing pane and the resultspane. For example, user interaction with the link may not affect thesize and/or orientation of the browsing pane or the results pane.

A determination can also be optionally made whether a user interactionwith an additional search result has occurred (310). The determinationof whether user interaction with the additional search result can bemade in parallel and/or independent of the determination of whether userinteraction with the link occurred, and while the browsing pane ispresented over the portion of the results pane. In response todetermining that user interaction with an additional search result hasoccurred, the landing page for the additional search result can bepresented in the browsing pane, as described above. The landing page canbe presented in the browsing pane while maintaining presentation of boththe browsing pane and the results pane. For example, user interactionwith the additional search result may not affect the size and/ororientation of the browsing pane or the results pane.

A determination is also made whether a user swipe has occurred (314).The determination that the user swipe has occurred can be performed inparallel and/or independent of the previously discussed determinations.For example, the user device can continuously monitor whether userinteraction has occurred and determine whether the user interactionconstitutes a user swipe. As discussed above, a user swipe can bedetermined to have occurred based on detection of a pointer at multiplelocations along a path that extends from a first display location to asecond display location.

In some implementations, the determination of whether the user swipe hasoccurred can include a determination of whether the first displaylocation is within a threshold distance of the display location at whichthe pane edge is presented. For example, if the pane edge is located atan initial display location (e.g., as illustrated by FIG. 2B), thedetermination can include determining that the user swipe begins at alocation that is within a threshold number of pixels of the initialdisplay location.

The determination of whether a user swipe has occurred can includedetermining a direction of the user swipe and/or a speed of the userswipe. The determination of the direction of the user swipe can be basedon the sequential detection of the pointer at two or more points alongthe path. For example, if the pointer is first detected at a particularlocation of the user device display, and subsequently detected atanother location of the user device display, the direction of the userswipe can be determined to be in a direction from the particularlocation to the other location. As described above in more detail, thespeed of the user swipe can be determined based on an amount of timebetween detection of the pointer at two or more points along the path.

In response to determining that a user swipe has occurred, a targetdisplay location of the pane edge of the browsing pane is selected(316). In some implementations, the target display location is selectedbased, at least in part, on the current location of the pane edge, thedirection of the user swipe, and/or the speed of the user swipe. Forexample, if the pane edge is located at the initial display location(e.g., as illustrated by FIG. 2B), the target display location that isselected can be in a direction of the swipe (i.e., relative to theposition of the pane edge). If the swipe is in the direction of theresults view display location, then the results view display locationcan be selected as the target display location. Alternatively, if theswipe is in the direction of the browser view display location, then thebrowser view display location can be selected as the target displaylocation.

When multiple target display locations are in a same direction as theuser swipe, selection of the target display location can be furtherbased on the speed of the user swipe. For example, as described above,speed thresholds can be specified and distance between a currentlocation of the pane edge and the target display location that isselected can be based on which, if any, of the speed thresholds that areexceeded. In some implementations, the distance between the currentlocation of the pane edge and the target display location that isselected is proportional to the speed of the user swipe.

As discussed above, view conditions can be used to determine whichtarget display location is selected. For example, when a browsing viewcondition is satisfied, the browsing view display location is selectedas the target display location irrespective of the current location ofthe pane edge. Satisfaction of the browsing view display location canrequire, for example, that the user swipe be in the direction of theedge of the user device display at which the browsing view displaylocation is located and also require that the speed of the user swipeexceed an upper speed threshold.

When a results view condition is satisfied, the results view displaylocation can be selected as the target display location irrespective ofthe current location of the pane edge. Satisfaction of the results viewcondition can require, for example, that the user swipe be in thedirection of the edge of the user device display at which the resultsview display location is located and also require that the speed of theuser swipe exceed an upper speed threshold.

The pane edge is relocated to the target display location (318).Relocation of the pane edge causes the portion of the results pane overwhich the browsing pane is presented to be adjusted. For example, as thelocation of the selected target display location approaches the resultsview display location, the portion of the results pane that is occludedis reduced and the portion of the browsing pane that is presented in theuser device display is also reduced. As the location of the selectedtarget display location approaches the browsing view display location,the portion of the results pane that is occluded increases as does theportion of the browsing pane that is presented in the user devicedisplay.

FIG. 4 is block diagram of an example computer system 400 that can beused to perform operations described above. The system 400 includes aprocessor 410, a memory 420, a storage device 430, and an input/outputdevice 440. Each of the components 410, 420, 430, and 440 can beinterconnected, for example, using a system bus 450. The processor 410is capable of processing instructions for execution within the system400. In one implementation, the processor 410 is a single-threadedprocessor. In another implementation, the processor 410 is amulti-threaded processor. The processor 410 is capable of processinginstructions stored in the memory 420 or on the storage device 430.

The memory 420 stores information within the system 400. In oneimplementation, the memory 420 is a computer-readable medium. In oneimplementation, the memory 420 is a volatile memory unit. In anotherimplementation, the memory 420 is a non-volatile memory unit.

The storage device 430 is capable of providing mass storage for thesystem 400. In one implementation, the storage device 430 is acomputer-readable medium. In various different implementations, thestorage device 430 can include, for example, a hard disk device, anoptical disk device, a storage device that is shared over a network bymultiple computing devices (e.g., a cloud storage device), or some otherlarge capacity storage device.

The input/output device 440 provides input/output operations for thesystem 400. In one implementation, the input/output device 440 caninclude one or more of a network interface devices, e.g., an Ethernetcard, a serial communication device, e.g., and RS-232 port, and/or awireless interface device, e.g., and 802.11 card. In anotherimplementation, the input/output device can include driver devicesconfigured to receive input data and send output data to otherinput/output devices, e.g., keyboard, printer and display devices 460.Other implementations, however, can also be used, such as mobilecomputing devices, mobile communication devices, set-top box televisionclient devices, etc.

Although an example processing system has been described in FIG. 4,implementations of the subject matter and the functional operationsdescribed in this specification can be implemented in other types ofdigital electronic circuitry, or in computer software, firmware, orhardware, including the structures disclosed in this specification andtheir structural equivalents, or in combinations of one or more of them.

Embodiments of the subject matter and the operations described in thisspecification can be implemented in digital electronic circuitry, or incomputer software, firmware, or hardware, including the structuresdisclosed in this specification and their structural equivalents, or incombinations of one or more of them. Embodiments of the subject matterdescribed in this specification can be implemented as one or morecomputer programs, i.e., one or more modules of computer programinstructions, encoded on computer storage medium for execution by, or tocontrol the operation of, data processing apparatus. Alternatively or inaddition, the program instructions can be encoded on anartificially-generated propagated signal, e.g., a machine-generatedelectrical, optical, or electromagnetic signal, that is generated toencode information for transmission to suitable receiver apparatus forexecution by a data processing apparatus. A computer storage medium canbe, or be included in, a computer-readable storage device, acomputer-readable storage substrate, a random or serial access memoryarray or device, or a combination of one or more of them. Moreover,while a computer storage medium is not a propagated signal, a computerstorage medium can be a source or destination of computer programinstructions encoded in an artificially-generated propagated signal. Thecomputer storage medium can also be, or be included in, one or moreseparate physical components or media (e.g., multiple CDs, disks, orother storage devices).

The operations described in this specification can be implemented asoperations performed by a data processing apparatus on data stored onone or more computer-readable storage devices or received from othersources.

The term “data processing apparatus” encompasses all kinds of apparatus,devices, and machines for processing data, including by way of example aprogrammable processor, a computer, a system on a chip, or multipleones, or combinations, of the foregoing The apparatus can includespecial purpose logic circuitry, e.g., an FPGA (field programmable gatearray) or an ASIC (application-specific integrated circuit). Theapparatus can also include, in addition to hardware, code that createsan execution environment for the computer program in question, e.g.,code that constitutes processor firmware, a protocol stack, a databasemanagement system, an operating system, a cross-platform runtimeenvironment, a virtual machine, or a combination of one or more of them.The apparatus and execution environment can realize various differentcomputing model infrastructures, such as web services, distributedcomputing and grid computing infrastructures.

A computer program (also known as a program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, declarative orprocedural languages, and it can be deployed in any form, including as astand-alone program or as a module, component, subroutine, object, orother unit suitable for use in a computing environment. A computerprogram may, but need not, correspond to a file in a file system. Aprogram can be stored in a portion of a file that holds other programsor data (e.g., one or more scripts stored in a markup languagedocument), in a single file dedicated to the program in question, or inmultiple coordinated files (e.g., files that store one or more modules,sub-programs, or portions of code). A computer program can be deployedto be executed on one computer or on multiple computers that are locatedat one site or distributed across multiple sites and interconnected by acommunication network.

The processes and logic flows described in this specification can beperformed by one or more programmable processors executing one or morecomputer programs to perform actions by operating on input data andgenerating output. The processes and logic flows can also be performedby, and apparatus can also be implemented as, special purpose logiccircuitry, e.g., an FPGA (field programmable gate array) or an ASIC(application-specific integrated circuit).

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor will receive instructions and data from a read-only memory ora random access memory or both. The essential elements of a computer area processor for performing actions in accordance with instructions andone or more memory devices for storing instructions and data. Generally,a computer will also include, or be operatively coupled to receive datafrom or transfer data to, or both, one or more mass storage devices forstoring data, e.g., magnetic, magneto-optical disks, or optical disks.However, a computer need not have such devices. Moreover, a computer canbe embedded in another device, e.g., a mobile telephone, a personaldigital assistant (PDA), a mobile audio or video player, a game console,a Global Positioning System (GPS) receiver, or a portable storage device(e.g., a universal serial bus (USB) flash drive), to name just a few.Devices suitable for storing computer program instructions and datainclude all forms of non-volatile memory, media and memory devices,including by way of example semiconductor memory devices, e.g., EPROM,EEPROM, and flash memory devices; magnetic disks, e.g., internal harddisks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROMdisks. The processor and the memory can be supplemented by, orincorporated in, special purpose logic circuitry.

To provide for interaction with a user, embodiments of the subjectmatter described in this specification can be implemented on a computerhaving a display device, e.g., a CRT (cathode ray tube) or LCD (liquidcrystal display) monitor, for displaying information to the user and akeyboard and a pointing device, e.g., a mouse or a trackball, by whichthe user can provide input to the computer. Other kinds of devices canbe used to provide for interaction with a user as well; for example,feedback provided to the user can be any form of sensory feedback, e.g.,visual feedback, auditory feedback, or tactile feedback; and input fromthe user can be received in any form, including acoustic, speech, ortactile input. In addition, a computer can interact with a user bysending documents to and receiving documents from a device that is usedby the user; for example, by sending web pages to a web browser on auser's client device in response to requests received from the webbrowser.

Embodiments of the subject matter described in this specification can beimplemented in a computing system that includes a back-end component,e.g., as a data server, or that includes a middleware component, e.g.,an application server, or that includes a front-end component, e.g., aclient computer having a graphical user interface or a Web browserthrough which a user can interact with an implementation of the subjectmatter described in this specification, or any combination of one ormore such back-end, middleware, or front-end components. The componentsof the system can be interconnected by any form or medium of digitaldata communication, e.g., a communication network. Examples ofcommunication networks include a local area network (“LAN”) and a widearea network (“WAN”), an inter-network (e.g., the Internet), andpeer-to-peer networks (e.g., ad hoc peer-to-peer networks).

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other. In someembodiments, a server transmits data (e.g., an HTML page) to a clientdevice (e.g., for purposes of displaying data to and receiving userinput from a user interacting with the client device). Data generated atthe client device (e.g., a result of the user interaction) can bereceived from the client device at the server.

While this specification contains many specific implementation details,these should not be construed as limitations on the scope of anyinventions or of what may be claimed, but rather as descriptions offeatures specific to particular embodiments of particular inventions.Certain features that are described in this specification in the contextof separate embodiments can also be implemented in combination in asingle embodiment. Conversely, various features that are described inthe context of a single embodiment can also be implemented in multipleembodiments separately or in any suitable subcombination. Moreover,although features may be described above as acting in certaincombinations and even initially claimed as such, one or more featuresfrom a claimed combination can in some cases be excised from thecombination, and the claimed combination may be directed to asubcombination or variation of a subcombination.

Similarly, while operations are depicted in the drawings in a particularorder, this should not be understood as requiring that such operationsbe performed in the particular order shown or in sequential order, orthat all illustrated operations be performed, to achieve desirableresults. In certain circumstances, multitasking and parallel processingmay be advantageous. Moreover, the separation of various systemcomponents in the embodiments described above should not be understoodas requiring such separation in all embodiments, and it should beunderstood that the described program components and systems cangenerally be integrated together in a single software product orpackaged into multiple software products.

Thus, particular embodiments of the subject matter have been described.Other embodiments are within the scope of the following claims. In somecases, the actions recited in the claims can be performed in a differentorder and still achieve desirable results. In addition, the processesdepicted in the accompanying figures do not necessarily require theparticular order shown, or sequential order, to achieve desirableresults. In certain implementations, multitasking and parallelprocessing may be advantageous.

What is claimed is:
 1. A method performed by data processing apparatus, the method comprising: determining that user interaction with a search result has occurred, the search result with which the user interacted having been presented in a results pane of a display; generating a browsing pane in which a landing page for the search result is presented, the browsing pane being presented over a portion of the results pane, the portion of the results pane being bounded by an edge of the display and a pane edge of the browsing pane, the pane edge being located at an initial display location; determining that a user swipe has occurred, the determination that the user swipe has occurred being based, at least in part, on detection of a pointer at multiple locations along a path that extends from a first display location to a second display location, the first display location being within a threshold distance of the initial display location; relocating the pane edge to a target display location, the relocation causing the portion of the results pane over which the browsing pane is presented to be adjusted.
 2. The method of claim 1, further comprising: detecting, while the browsing pane is presented over the portion of the results pane, an additional user interaction with an additional search result that is presented in the results pane; in response to detecting the additional user interaction: maintaining presentation of the browsing pane over the portion of the results pane; and presenting a landing page for the additional search result in the browsing pane.
 3. The method of claim 2, further comprising: determining that user interaction with a resource link occurred, the resource link being a link that is included in the landing page for the additional search result; and in response to determining that the user interaction with the resource link occurred: requesting a resource that is referenced by the resource link; and presenting the resource in the browsing pane, the resource being presented while maintaining presentation of at least one search result in the results pane.
 4. The method of claim 1, further comprising: determining a direction of the user swipe, the direction of the user swipe being based on sequential detection of the pointer at two or more of the multiple points; and selecting the target display location based, at least in part, on the initial display location and the direction of the user swipe.
 5. The method of claim 4, further comprising determining a speed of the user swipe, the speed of the user swipe being based on an amount of time between detection of the pointer at two or more of the multiple points, wherein the target display location is further selected based, at least in part, on the speed of the user swipe.
 6. The method of claim 5, wherein a distance between the target display location and the initial display location is proportional to the speed of the user swipe.
 7. The method of claim 5, wherein selecting the target display location comprises selecting the target display location from a plurality of candidate display locations that includes at least: a results view display location that is located at a first edge of the display and causes less than a threshold portion of the results pane to be occluded by the browsing pane; a browsing view display location that is located at a second edge of the display and causes more than a threshold portion of the results pane to be occluded by the browsing pane, the second edge being located on an opposite end of the display than the first edge; and a partial view display location that is located between the first edge and the second edge.
 8. The method of claim 7, further comprising: determining that the pane edge is located at the results view display location; determining that a browsing view condition has been satisfied, the determination that the browsing view condition is satisfied being based, at least in part, on the direction of the user swipe being towards the second edge of the display and that the speed of the user swipe being greater than a speed threshold; and in response to determining that the browsing view condition has been satisfied, relocating the pane edge to the browsing view display location.
 9. The method of claim 8, further comprising: determining that a subsequent user swipe has occurred while the pane edge is located at the browsing view display location; determining that the subsequent user swipe satisfies a results view condition, the determination that the results view condition is satisfied being based, at least in part, on the direction of a subsequent user swipe being toward the results view display location and the speed of the subsequent user swipe being greater than the speed threshold; and in response to determining that the results view condition has been satisfied, relocating the pane edge to the results view display location.
 10. A non-transitory computer storage medium encoded with a computer program, the program comprising instructions that when executed by data processing apparatus cause the data processing apparatus to perform operations comprising: determining that user interaction with a search result has occurred, the search result with which the user interacted having been presented in a results pane of a display; generating a browsing pane in which a landing page for the search result is presented, the browsing pane being presented over a portion of the results pane, the portion of the results pane being bounded by an edge of the display and a pane edge of the browsing pane, the pane edge being located at an initial display location; determining that a user swipe has occurred, the determination that the user swipe has occurred being based, at least in part, on detection of a pointer at multiple locations along a path that extends from a first display location to a second display location, the first display location being within a threshold distance of the initial display location; relocating the pane edge to a target display location, the relocation causing the portion of the results pane over which the browsing pane is presented to be adjusted.
 11. The computer storage medium of claim 10, wherein the program includes instructions that when executed by the data processing apparatus cause the data processing apparatus to perform operations further comprising: detecting, while the browsing pane is presented over the portion of the results pane, an additional user interaction with an additional search result that is presented in the results pane; in response to detecting the additional user interaction: maintaining presentation of the browsing pane over the portion of the results pane; and presenting a landing page for the additional search result in the browsing pane.
 12. The computer storage medium of claim 11, wherein the program includes instructions that when executed by the data processing apparatus cause the data processing apparatus to perform operations further comprising: determining that user interaction with a resource link occurred, the resource link being a link that is included in the landing page for the additional search result; and in response to determining that the user interaction with the resource link occurred: requesting a resource that is referenced by the resource link; and presenting the resource in the browsing pane, the resource being presented while maintaining presentation of at least one search result in the results pane.
 13. The computer storage medium of claim 10, wherein the program includes instructions that when executed by the data processing apparatus cause the data processing apparatus to perform operations further comprising: determining a direction of the user swipe, the direction of the user swipe being based on sequential detection of the pointer at two or more of the multiple points; and selecting the target display location based, at least in part, on the initial display location and the direction of the user swipe.
 14. The computer storage medium of claim 13, wherein the program includes instructions that when executed by the data processing apparatus cause the data processing apparatus to perform operations further comprising determining a speed of the user swipe, the speed of the user swipe being based on an amount of time between detection of the pointer at two or more of the multiple points, wherein the target display location is further selected based, at least in part, on the speed of the user swipe.
 15. The computer storage medium of claim 14, wherein a distance between the target display location and the initial display location is proportional to the speed of the user swipe.
 16. The computer storage medium of claim 14, wherein selecting the target display location comprises selecting the target display location from a plurality of candidate display locations that includes at least: a results view display location that is located at a first edge of the display and causes less than a threshold portion of the results pane to be occluded by the browsing pane; a browsing view display location that is located at a second edge of the display and causes more than a threshold portion of the results pane to be occluded by the browsing pane, the second edge being located on an opposite end of the display than the first edge; and a partial view display location that is located between the first edge and the second edge.
 17. The computer storage medium of claim 16, wherein the program includes instructions that when executed by the data processing apparatus cause the data processing apparatus to perform operations further comprising: determining that the pane edge is located at the results view display location; determining that a browsing view condition has been satisfied, the determination that the browsing view condition is satisfied being based, at least in part, on the direction of the user swipe being towards the second edge of the display and that the speed of the user swipe being greater than a speed threshold; and in response to determining that the browsing view condition has been satisfied, relocating the pane edge to the browsing view display location.
 18. The computer storage medium of claim 17, wherein the program includes instructions that when executed by the data processing apparatus cause the data processing apparatus to perform operations further comprising: determining that a subsequent user swipe has occurred while the pane edge is located at the browsing view display location; determining that the subsequent user swipe satisfies a results view condition, the determination that the results view condition is satisfied being based, at least in part, on the direction of a subsequent user swipe being toward the results view display location and the speed of the subsequent user swipe being greater than the speed threshold; and in response to determining that the results view condition has been satisfied, relocating the pane edge to the results view display location.
 19. A system comprising: a display in which search results are presented to a user; one or more processors configured to determine that user interaction with the display has occurred, the one or more processors further configured to perform operations comprising: determining that the user interaction was an interaction with a search result, the search result with which the user interacted having been presented in a results pane of the display; generating a browsing pane in which a landing page for the search result is presented, the browsing pane being presented over a portion of the results pane, the portion of the results pane being bounded by an edge of the display and a pane edge of the browsing pane, the pane edge being located at an initial display location; determining that a user swipe has occurred, the determination that the user swipe has occurred being based, at least in part, on detection of a pointer at multiple locations along a path that extends from a first display location to a second display location, the first display location being within a threshold distance of the initial display location; relocating the pane edge to a target display location, the relocation causing the portion of the results pane over which the browsing pane is presented to be adjusted.
 20. The system of claim 19, wherein the one or more processors are configured to perform operations further comprising: detecting, while the browsing pane is presented over the portion of the results pane, an additional user interaction with an additional search result that is presented in the results pane; in response to detecting the additional user interaction: maintaining presentation of the browsing pane over the portion of the results pane; and presenting a landing page for the additional search result in the browsing pane.
 21. The system of claim 20, wherein the one or more processors are configured to perform operations further comprising: determining that user interaction with a resource link occurred, the resource link being a link that is included in the landing page for the additional search result; and in response to determining that the user interaction with the resource link occurred: requesting a resource that is referenced by the resource link; and presenting the resource in the browsing pane, the resource being presented while maintaining presentation of at least one search result in the results pane.
 22. The system of claim 19, wherein the one or more processors are configured to perform operations further comprising: determining a direction of the user swipe, the direction of the user swipe being based on sequential detection of the pointer at two or more of the multiple points; and selecting the target display location based, at least in part, on the initial display location and the direction of the user swipe.
 23. The system of claim 22, wherein the one or more processors are configured to perform operations further comprising determining a speed of the user swipe, the speed of the user swipe being based on an amount of time between detection of the pointer at two or more of the multiple points, wherein the target display location is further selected based, at least in part, on the speed of the user swipe.
 24. The system of claim 23, wherein a distance between the target display location and the initial display location is proportional to the speed of the user swipe.
 25. The system of claim 23, wherein selecting the target display location comprises selecting the target display location from a plurality of candidate display locations that includes at least: a results view display location that is located at a first edge of the display and causes less than a threshold portion of the results pane to be occluded by the browsing pane; a browsing view display location that is located at a second edge of the display and causes more than a threshold portion of the results pane to be occluded by the browsing pane, the second edge being located on an opposite end of the display than the first edge; and a partial view display location that is located between the first edge and the second edge.
 26. The system of claim 25, wherein the one or more processors are configured to perform operations further comprising: determining that the pane edge is located at the results view display location; determining that a browsing view condition has been satisfied, the determination that the browsing view condition is satisfied being based, at least in part, on the direction of the user swipe being towards the second edge of the display and that the speed of the user swipe being greater than a speed threshold; and in response to determining that the browsing view condition has been satisfied, relocating the pane edge to the browsing view display location.
 27. The system of claim 26, wherein the one or more processors are configured to perform operations further comprising: determining that a subsequent user swipe has occurred while the pane edge is located at the browsing view display location; determining that the subsequent user swipe satisfies a results view condition, the determination that the results view condition is satisfied being based, at least in part, on the direction of a subsequent user swipe being toward the results view display location and the speed of the subsequent user swipe being greater than the speed threshold; and in response to determining that the results view condition has been satisfied, relocating the pane edge to the results view display location. 